﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Xml;
using Ext.Net;
namespace entgp
{
    
    public class UIHelpers
    {

        public static string ApplicationRoot
        {
            get
            {
                string root = HttpContext.Current.Request.ApplicationPath;
                return root == "/" ? "" : root;
            }
        }


        private const string NEW_MARKER = "";


        public static void CargarFrontal(List<GrupoPrincipal> grupos,string nombreFrontal)
        {
            XmlDocument xDocFrontal = new XmlDocument();
            xDocFrontal.Load(HttpContext.Current.Server.MapPath("~/resources/" + nombreFrontal));
            XmlNodeList lista = xDocFrontal.GetElementsByTagName("nodo");

            XmlNodeList listaPresentar = lista[0].ChildNodes;
            int i = 0;
            string nombre, nombreEx, url, imgUrl, descr, sub, idpadre, idref;
            foreach (XmlElement propiedades in listaPresentar)
            {

                grupos.Add(new GrupoPrincipal { id = propiedades.GetAttribute("id"), title = propiedades.GetAttribute("nombre") });
                XmlNodeList listahijos = listaPresentar[i].ChildNodes;
                int j = 0;
                GrupoPrincipal group = grupos[grupos.Count - 1];
                if (listahijos != null)
                    foreach (XmlElement propiedades2 in listahijos)
                    {
                        nombre = propiedades2.GetAttribute("nombre");
                        nombreEx = nombre + NEW_MARKER;
                        url = propiedades2.GetAttribute("url");
                        imgUrl = propiedades2.GetAttribute("imgUrl");
                        descr = propiedades2.GetAttribute("descripcion");
                        sub = propiedades2.GetAttribute("sub");
                        idpadre = propiedades2.GetAttribute("idpadre");
                        idref = propiedades2.GetAttribute("id");
                        group.enlaces.Add(new { id = "e" + propiedades2.GetAttribute("id").GetHashCode(), idref, nombre, url, imgUrl, descr, sub, nombreEx, idpadre });

                        j++;
                    }
                i++;
            }
        }
    }



    public class GrupoPrincipal
    {
        private List<object> parametros;

        public string id { get; set; }

        public string title { get; set; }

        public List<object> enlaces
        {
            get
            {
                if (this.parametros == null)
                {
                    this.parametros = new List<object>();
                }
                return parametros;
            }
        }
    }
}